#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <string.h>
#include <stdio.h>
#include <time.h>

using namespace std;


int main()
{
    FILE* fichier = NULL;
    int nb_produit=0, nb_client=0, capacite_transporteur=0, i=0, ientre_client=0, var=0;
    float TRANSPORTER_DELIVERY_COST_ETA=0;
    float* cout_stockage_client=NULL;
    float* cout_transport_client=NULL;
    float* cout_transport_entre_client=NULL;
    int* destination_produit=NULL;
    double* date_due=NULL;
    string nom_fichier="instance";
    string nb_produit_num;
    string nb_client_num;

    cout << "entrer le nombre de produits : " << endl;
    cin >> nb_produit_num;
    cout << "entrer le nombre de client : " << endl;
    cin >> nb_client_num;
    nom_fichier+=nb_produit_num;
    nom_fichier+="n";
    nom_fichier+=nb_client_num;
    nom_fichier+="cl.txt";

    fichier = fopen(nom_fichier.c_str(), "r");

     if (fichier != NULL)
    {
        fscanf(fichier, "NBR_PRODUCT:%d;\nNBR_CUSTOMER:%d;\n  TRANSPORTER_CAPACITY:%d;\n  TRANSPORTER_DELIVERY_COST_ETA:%f;\n  "
               , &nb_produit, &nb_client, &capacite_transporteur, &TRANSPORTER_DELIVERY_COST_ETA);

        cout_stockage_client = (float *) malloc(nb_client*sizeof(float));
        cout_transport_client = (float*) malloc(nb_client*sizeof(float));
        do
        {
            fscanf(fichier, "CUSTOMER:%d;\n    ", &i);
            fscanf(fichier, "CUSTOMER_HOLDING_COSTS:%f;\n    TRANSPORTER_DELIVERY_TIME_SUPPLIER_CUSTOMER:%f;\n  "
               , &cout_stockage_client[i-1], &cout_transport_client[i-1]);
        }while(i<nb_client);

        fscanf(fichier, "JOB_CUSTOMER:");
        destination_produit = (int*) malloc(nb_produit*sizeof(int));
        for(i=0;i<nb_produit;i++)
            fscanf(fichier, "%d;", &destination_produit[i]);

        fscanf(fichier, "\nJOB_DUE_DATES:");
        date_due = (double*) malloc(nb_produit*sizeof(double));
        for(i=0;i<nb_produit;i++)
            fscanf(fichier, "%lf;", &date_due[i]);

        fscanf(fichier, "\n");
        for(i=0;i<nb_client;i++)
            ientre_client+=i;
        cout_transport_entre_client = (float*) malloc(ientre_client*sizeof(float));
        for(i=0;i<ientre_client;i++)
            fscanf(fichier,"TIME_CUSTOMER_CUSTOMER: %d;%d;%f;\n", &var, &var, &cout_transport_entre_client[i]);
        fclose(fichier);
    }
    else
    {
        printf("Impossible d'ouvrir le fichier");
    }

    cout << "nombre de produit : " << nb_produit << " et nombre de client : " << nb_client << endl;
    cout << "capacite du transporteur : " << capacite_transporteur << " TRANSPORTER_DELIVERY_COST_ETA : " << TRANSPORTER_DELIVERY_COST_ETA << endl;
    cout << "cout_stockage_client et cout_transport_client" << endl;
    for(i=0;i<nb_client;i++)
    {
        cout << " cout de stockage du client " << i << " : " << cout_stockage_client[i] << endl;
        cout << " cout de transport du client " << i << " : " << cout_transport_client[i] << endl;
    }

    cout << "destination_produit" << endl;
    for(i=0;i<nb_produit;i++)
        cout << "produit " << i+1 << " est pour le client : " << destination_produit[i] << endl;

    cout << "date_due de chaque produit" << endl;
    for(i=0;i<nb_produit;i++)
        cout << date_due[i] << endl;

    cout << "cout_transport_entre_client" << endl;
    for(i=0;i<ientre_client;i++)
        cout << cout_transport_entre_client[i] << endl;

    free(cout_stockage_client);
    free(cout_transport_client);
    free(destination_produit);
    free(date_due);
    free(cout_transport_entre_client);/**/
    return 0;
}
